package ar.com.gep.soccer.services;

import java.util.List;

import ar.com.gep.soccer.exception.LeagueBusinessException;
import ar.com.gep.soccer.services.dto.EditionDTO;
import ar.com.gep.soccer.services.dto.LeagueDTO;
import ar.com.gep.soccer.services.dto.TeamDTO;

public interface LeagueService {

	LeagueDTO getById(final Long id) throws LeagueBusinessException;

	LeagueDTO save(final LeagueDTO dto) throws LeagueBusinessException;

	/**
	 * Crea un edicion para una liga
	 * 
	 * @param id
	 * @param teamsDTO
	 * @param b
	 * @return
	 * @throws LeagueBusinessException
	 */
	EditionDTO createEdition(final Long id, final List<TeamDTO> teamsDTO, final Boolean complete) throws LeagueBusinessException;

	LeagueDTO update(final LeagueDTO leagueDTO) throws LeagueBusinessException;

	void playRound(final Long id) throws LeagueBusinessException;

	int getTotalRoundLastEdition(final Long id) throws LeagueBusinessException;

}
